knitr::opts_chunk$set(echo = TRUE)

cmdstanr::set_cmdstan_path(path = "C:/Users/kueng/.cmdstan/cmdstan-2.35.0")

library(tidyverse)
library(R.utils)
library(wbCorr)
library(readxl)
library(kableExtra)
library(brms)
library(bayesplot)
library(see)
library(beepr)
library(DHARMa)
library(digest)



source(file.path('Functions', 'ReportModels.R'))
source(file.path('Functions', 'PrettyTables.R'))
source(file.path('Functions', 'ReportMeasures.R'))
source(file.path('Functions', 'PrepareData.R'))

report_function_hash <- digest::digest(summarize_brms)
system("shutdown /a")
## [1] 1116
# Set options for analysis
use_mi = FALSE
shutdown = FALSE
report_ordinal = FALSE
report_hurdle = TRUE
do_priorsense = FALSE

options(
  dplyr.print_max = 100, 
  brms.backend = 'cmdstan',
  brms.file_refit = ifelse(use_mi, 'never', 'on_change'),
  brms.file_refit = 'on_change',
  #brms.file_refit = 'always',
  error = function() {
    beepr::beep(sound = 5)
    if (shutdown) {
      system("shutdown /s /t 180")
      quit(save = "no", status = 1)
    }
  }
  , es.use_symbols = TRUE
)


####################### Model parameters #######################

iterations = 2000 # 10'000 per chain to achieve 40'000
warmup = 1000

# NO AR!!!
#corstr = 'ar'
#corstr = 'cosy_couple'
#corstr = 'cosy_couple:user'


################################################################

suffix = as.character(iterations)
df <- openxlsx::read.xlsx(file.path('long.xlsx'))
df_original <- df

df_double <- prepare_data(df, recode_pushing = TRUE, use_mi = use_mi)[[1]]

Constructing scales Re-coding pusing reshaping data (4field) centering data within and between

summary(df_double$pushing)

Min. 1st Qu. Median Mean 3rd Qu. Max. NA’s 0.0000 0.0000 0.0000 0.1635 0.0000 5.0000 241

Modelling

# For indistinguishable Dyads
model_rows_fixed <- c(
    'Intercept', 
    # '-- WITHIN PERSON MAIN EFFECTS --', 
    'persuasion_self_cw', 
    'persuasion_partner_cw', 
    'pressure_self_cw', 
    'pressure_partner_cw', 
    'pushing_self_cw', 
    'pushing_partner_cw', 
    'planPlan',
    'day', 
    'weartime_self_cw',
    
    'support_self_cw',
    'support_partner_cw',
    'isWeekendWeekend',
    'got_JITAI_selfJITAIreceived',
    'skilled_supportDaysafterIntervention',
    
    
    # '-- BETWEEN PERSON MAIN EFFECTS',
    'persuasion_self_cb',
    'persuasion_partner_cb',
    'pressure_self_cb',
    'pressure_partner_cb',
    'pushing_self_cb',
    'pushing_partner_cb',
    'weartime_self_cb',
    
    'support_self_cb',
    'support_partner_cb',
    'studyGroupFirst3weeksinterventions',
    'studyGrouplast3weeksinterventions'
  )


model_rows_fixed_ordinal <- c(
  model_rows_fixed[1],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rows_fixed[2:length(model_rows_fixed)]
)

model_rows_random <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  'sd(persuasion_self_cw)',
  'sd(persuasion_partner_cw)',
  'sd(pressure_self_cw)',
  'sd(pressure_partner_cw)',
  'sd(pushing_self_cw)',
  'sd(pushing_partner_cw)',
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rows_random_ordinal <- c(model_rows_random,'disc')
# For indistinguishable Dyads
model_rownames_fixed <- c(
    "Intercept", 
    # "-- WITHIN PERSON MAIN EFFECTS --", 
    "Daily persuasion experienced", 
    "Daily persuasion utilized (partner's view)", # OR partner received
    "Daily pressure experienced", 
    "Daily pressure utilized (partner's view)", 
    "Daily pushing experienced", 
    "Daily pushing utilized (partner's view)", 
    'Actionplan',
    "Day", 
    "Daily weartime",
    
    'Daily support received',
    "Daily support provided (partner's view)",
    'Is a Weekend',
    'JITAI received',
    'Days post skilled support intervention',
    
    # "-- BETWEEN PERSON MAIN EFFECTS",
    "Mean persuasion experienced", 
    "Mean persuasion utilized (partner's view)", 
    "Mean pressure experienced", 
    "Mean pressure utilized (partner's view)", 
    "Mean pushing experienced", 
    "Mean pushing utilized (partner's view)", 
    "Mean weartime",
    
    'Mean support received',
    "Mean support provided (partner's view)",
    'Difference study group 2',
    'Difference study group 3'
  )


model_rownames_fixed_ordinal <- c(
  model_rownames_fixed[1],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rownames_fixed[2:length(model_rownames_fixed)]
)

model_rownames_random <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  "sd(Daily persuasion experienced)", 
  "sd(Daily persuasion utilized (partner's view))", # OR partner received
  "sd(Daily pressure experienced)", 
  "sd(Daily pressure utilized (partner's view))", 
  "sd(Daily pushing experienced)", 
  "sd(Daily pushing utilized (partner's view))", 
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rownames_random_ordinal <- c(model_rownames_random,'disc')
rows_to_pack <- list(
  "Within-Person Effects" = c(2,15),
  "Between-Person Effects" = c(16,26),
  "Random Effects" = c(27, 33), 
  "Additional Parameters" = c(34,34)
  )


rows_to_pack_ordinal <- list(
  "Intercepts" = c(1,6),
  "Within-Person Effects" = c(2+5,15+5),
  "Between-Person Effects" = c(16+5,26+5),
  "Random Effects" = c(27+5, 33+5), 
  "Additional Parameters" = c(34+5,34+6)
  )

HURDLE MODELS

# For indistinguishable Dyads
model_rows_fixed_hu <- c(
    'Intercept', 
    'hu_Intercept',
    # '-- WITHIN PERSON MAIN EFFECTS --', 
    'persuasion_self_cw', 
    'persuasion_partner_cw', 
    'pressure_self_cw', 
    'pressure_partner_cw', 
    'pushing_self_cw', 
    'pushing_partner_cw', 
    'planPlan',
    'day', 
    'weartime_self_cw',
  
    'support_self_cw',
    'support_partner_cw',
    'isWeekendWeekend',
    'got_JITAI_selfJITAIreceived',
    'skilled_supportDaysafterIntervention',
    
    # '-- BETWEEN PERSON MAIN EFFECTS',
    'persuasion_self_cb',
    'persuasion_partner_cb',
    'pressure_self_cb',
    'pressure_partner_cb',
    'pushing_self_cb',
    'pushing_partner_cb',
    'weartime_self_cb',
    
    'support_self_cb',
    'support_partner_cb',
    'studyGroupFirst3weeksinterventions',
    'studyGrouplast3weeksinterventions',
    
    # HURDLE MODEL
    # '-- WITHIN PERSON MAIN EFFECTS --', 
    'hu_persuasion_self_cw', 
    'hu_persuasion_partner_cw', 
    'hu_pressure_self_cw', 
    'hu_pressure_partner_cw', 
    'hu_pushing_self_cw', 
    'hu_pushing_partner_cw', 
    'hu_planPlan',
    'hu_day', 
    'hu_weartime_self_cw',

    'hu_support_self_cw',
    'hu_support_partner_cw',
    'hu_isWeekendWeekend',
    'hu_got_JITAI_selfJITAIreceived',
    'hu_skilled_supportDaysafterIntervention',
    
    # '-- BETWEEN PERSON MAIN EFFECTS',
    'hu_persuasion_self_cb',
    'hu_persuasion_partner_cb',
    'hu_pressure_self_cb',
    'hu_pressure_partner_cb',
    'hu_pushing_self_cb',
    'hu_pushing_partner_cb',
    'hu_weartime_self_cb',
    
    'hu_support_self_cb',
    'hu_support_partner_cb',
    'hu_studyGroupFirst3weeksinterventions',
    'hu_studyGrouplast3weeksinterventions'
    
  )

model_rows_fixed_hu_ordinal <- c(
  model_rows_fixed_hu[1:2],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rows_fixed_hu[3:length(model_rows_fixed_hu)]
)


model_rows_random_hu <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  'sd(hu_Intercept)',
  'sd(persuasion_self_cw)',
  'sd(persuasion_partner_cw)',
  'sd(pressure_self_cw)',
  'sd(pressure_partner_cw)',
  'sd(pushing_self_cw)',
  'sd(pushing_partner_cw)',
  # HURDLE
  'sd(hu_persuasion_self_cw)',
  'sd(hu_persuasion_partner_cw)',
  'sd(hu_pressure_self_cw)',
  'sd(hu_pressure_partner_cw)',
  'sd(hu_pushing_self_cw)',
  'sd(hu_pushing_partner_cw)',
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rows_random_hu_ordinal <- c(model_rows_random_hu,'disc')
# For indistinguishable Dyads
model_rownames_fixed_hu <- c(
    "Intercept", 
    "Hurdle Intercept",
    # "-- WITHIN PERSON MAIN EFFECTS --", 
    "Daily persuasion experienced", 
    "Daily persuasion utilized (partner's view)", # OR partner received
    "Daily pressure experienced", 
    "Daily pressure utilized (partner's view)", 
    "Daily pushing experienced", 
    "Daily pushing utilized (partner's view)", 
    'Actionplan',
    "Day", 
    "Daily weartime",

    'Daily support received',
    "Daily support provided (partner's view)",
    'Is a Weekend',
    'JITAI received',
    'Days post skilled support intervention',
    
    # "-- BETWEEN PERSON MAIN EFFECTS",
    "Mean persuasion experienced", 
    "Mean persuasion utilized (partner's view)", 
    "Mean pressure experienced", 
    "Mean pressure utilized (partner's view)", 
    "Mean pushing experienced", 
    "Mean pushing utilized (partner's view)", 
    "Mean weartime", 
    
    'Mean support received',
    "Mean support provided (partner's view)",
    'Difference study group 2',
    'Difference study group 3',
    
    # HURDLE
    # "-- WITHIN PERSON MAIN EFFECTS --", 
    "Hu Daily persuasion experienced", 
    "Hu Daily persuasion utilized (partner's view)", # OR partner received
    "Hu Daily pressure experienced", 
    "Hu Daily pressure utilized (partner's view)", 
    "Hu Daily pushing experienced", 
    "Hu Daily pushing utilized (partner's view)", 
    'Hu Actionplan',
    "Hu Day", 
    "Hu Daily weartime",

    'Hu Daily support received',
    "Hu Daily support provided (partner's view)",
    'Hu Is a Weekend',
    'Hu JITAI received',
    'Hu Days post skilled support intervention',
    
    # "-- BETWEEN PERSON MAIN EFFECTS",
    "Hu Mean persuasion experienced", 
    "Hu Mean persuasion utilized (partner's view)", 
    "Hu Mean pressure experienced", 
    "Hu Mean pressure utilized (partner's view)", 
    "Hu Mean pushing experienced", 
    "Hu Mean pushing utilized (partner's view)", 
    "Hu Mean weartime",
    
    'Hu Mean support received',
    "Hu Mean support provided (partner's view)",
    'Hu Difference study group 2',
    'Hu Difference study group 3'
  )



model_rownames_fixed_hu_ordinal <- c(
  model_rownames_fixed_hu[1:2],
  'Intercept[1]',
  'Intercept[2]',
  'Intercept[3]',
  'Intercept[4]',
  'Intercept[5]',
  model_rownames_fixed_hu[3:length(model_rownames_fixed_hu)]
)



model_rownames_random_hu <- c(
  # '--------------',
  # '-- RANDOM EFFECTS --',
  'sd(Intercept)', 
  'sd(Hurdle Intercept)', 
  "sd(Daily persuasion experienced)", 
  "sd(Daily persuasion utilized (partner's view))", # OR partner received
  "sd(Daily pressure experienced)", 
  "sd(Daily pressure utilized (partner's view))", 
  "sd(Daily pushing experienced)", 
  "sd(Daily pushing utilized (partner's view))", 
  
  # Hurdle
  "sd(Hu Daily persuasion experienced)", 
  "sd(Hu Daily persuasion utilized (partner's view))", # OR partner received
  "sd(Hu Daily pressure experienced)", 
  "sd(Hu Daily pressure utilized (partner's view))", 
  "sd(Hu Daily pushing experienced)", 
  "sd(Hu Daily pushing utilized (partner's view))", 
  # '-- CORRELATION STRUCTURE -- ', 
  'sigma'
)

model_rownames_random_hu_ordinal <- c(model_rownames_random_hu,'disc')
rows_to_pack_hu <- list(
  "Conditional Within-Person Effects" = c(3,16),
  "Conditional Between-Person Effects" = c(17,27),
  
  "Hurdle Within-Person Effects" = c(28,41),
  "Hurdle Between-Person Effects" = c(42,52),
  
  "Random Effects" = c(53, 66), 
  "Additional Parameters" = c(67,67)
  )

rows_to_pack_hu_ordinal <- list(
  "Conditional Within-Person Effects" = c(3+5,16+5),
  "Conditional Between-Person Effects" = c(17+5,27+5),
  
  "Hurdle Within-Person Effects" = c(28+5,41+5),
  "Hurdle Between-Person Effects" = c(42+5,52+5),
  
  "Random Effects" = c(53+5, 66+5), 
  "Additional Parameters" = c(67+5,67+6)
  )

Self-Reported MVPA

Hurdle Lognormal Model

formula <- bf(
  pa_sub ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan +
    day + 
    
    # Random effects
    (1 + persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID),
  
  hu = ~ persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan +
    day + 
    
    # Random effects
    (1 + persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
) 

prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 2)", class = "b", dpar = "hu")
  , brms::set_prior("normal(0, 50)", class = "Intercept") # for non-zero PA
  , brms::set_prior("normal(0.5, 2.5)", class = "Intercept", dpar = 'hu') # hurdle part
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
  , brms::set_prior("student_t(3, 0, 2.5)", class = "sigma", lb = 0)
)

#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = hurdle_lognormal()
#)

#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

pa_sub <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = brms::hurdle_lognormal(), 
  #family = brms::hurdle_negbinomial(), 
  #family = brms::hurdle_poisson(),
  #control = list(adapt_delta = 0.95, max_treedepth = 15),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 42,
  file = file.path("models_cache_brms", paste0("pa_sub_hu_lognormal_othercov_", suffix))
  #, file_refit = 'always'
)
## Warning: Rows containing NAs were excluded from the model.
pa_sub_digest <- digest::digest(pa_sub)
# summarize with rope range for hurdle part
summary_pa_sub_hurdle <- summarize_brms(
  pa_sub, 
  stats_to_report = c('pd','ROPE'),
  rope_range = c(-0.18, 0.18),
  model_rows_fixed = model_rows_fixed_hu,
  model_rows_random = model_rows_random_hu,
  model_rownames_fixed = model_rownames_fixed_hu,
  model_rownames_random = model_rownames_random_hu,
  exponentiate = T) 
## Warning in summarize_brms(pa_sub, stats_to_report = c("pd", "ROPE"), rope_range
## = c(-0.18, : Coefficients were exponentiated. Double check if this was
## intended.
# rope range for continuous part of the model
rope_factor <- sd(log(pa_sub$data$pa_sub[pa_sub$data$pa_sub > 0]))
rope_range_continuous = c(-0.1 * rope_factor, 0.1 * rope_factor)

summary_pa_sub_continuous <- summarize_brms(
  pa_sub, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  rope_range = rope_range_continuous,
  model_rows_fixed = model_rows_fixed_hu,
  model_rows_random = model_rows_random_hu,
  model_rownames_fixed = model_rownames_fixed_hu,
  model_rownames_random = model_rownames_random_hu,
  exponentiate = T) 
## Warning in summarize_brms(pa_sub, stats_to_report = c("CI", "SE", "pd", :
## Coefficients were exponentiated. Double check if this was intended.
# Replace only the ROPE and % in Rope columns for rows with 'Hu'
summary_pa_sub <- summary_pa_sub_continuous

columns_to_replace <- c("ROPE", "inside ROPE")

summary_pa_sub[grepl('Hu', rownames(summary_pa_sub)), columns_to_replace] <- 
  summary_pa_sub_hurdle[grepl('Hu', rownames(summary_pa_sub_hurdle)), columns_to_replace]

# Print the updated dataframe
summary_pa_sub %>%
  print_df(rows_to_pack = rows_to_pack_hu)
exp(Est.) SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 32.52*** 3.43 [26.48, 40.42] 1.000 [0.92, 1.08] 0.000 1.002 913 1510
Hurdle Intercept 0.24*** 0.06 [ 0.15, 0.39] 1.000 [0.84, 1.20] 0.000 1.001 945 1837
Conditional Within-Person Effects
Daily persuasion experienced 1.03 0.03 [ 0.97, 1.09] 0.853 [0.92, 1.08] 0.967 1.002 1332 2269
Daily persuasion utilized (partner’s view) 1.03 0.02 [ 0.98, 1.08] 0.883 [0.92, 1.08] 0.982 1.002 1914 2583
Daily pressure experienced 0.91 0.04 [ 0.82, 1.00] 0.974 [0.92, 1.08] 0.358 1.000 3022 2831
Daily pressure utilized (partner’s view) 0.94 0.04 [ 0.86, 1.03] 0.919 [0.92, 1.08] 0.673 1.002 2991 2690
Daily pushing experienced 0.99 0.03 [ 0.92, 1.05] 0.657 [0.92, 1.08] 0.966 1.000 2343 2562
Daily pushing utilized (partner’s view) 0.97 0.03 [ 0.92, 1.03] 0.858 [0.92, 1.08] 0.948 1.002 2677 2459
Actionplan 1.40*** 0.06 [ 1.28, 1.53] 1.000 [0.92, 1.08] 0.000 1.002 4253 3238
Day 0.95 0.08 [ 0.80, 1.12] 0.743 [0.92, 1.08] 0.556 1.004 2752 2988
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 1.19*** 0.05 [ 1.11, 1.29] 1.000 [0.92, 1.08] 0.004 1.003 4063 2892
JITAI received 0.94 0.05 [ 0.85, 1.04] 0.884 [0.92, 1.08] 0.625 1.000 3919 2849
Days post skilled support intervention 1.07 0.06 [ 0.94, 1.20] 0.848 [0.92, 1.08] 0.579 1.002 2921 2919
Conditional Between-Person Effects
Mean persuasion experienced 1.07 0.16 [ 0.79, 1.44] 0.656 [0.92, 1.08] 0.363 1.004 813 1659
Mean persuasion utilized (partner’s view) 1.01 0.15 [ 0.75, 1.36] 0.530 [0.92, 1.08] 0.392 1.003 805 1507
Mean pressure experienced 1.16 0.20 [ 0.82, 1.62] 0.800 [0.92, 1.08] 0.255 1.001 1211 2444
Mean pressure utilized (partner’s view) 0.93 0.17 [ 0.66, 1.33] 0.650 [0.92, 1.08] 0.299 1.001 1181 2534
Mean pushing experienced 1.15 0.25 [ 0.73, 1.78] 0.733 [0.92, 1.08] 0.231 1.005 1174 2169
Mean pushing utilized (partner’s view) 1.22 0.28 [ 0.77, 1.92] 0.799 [0.92, 1.08] 0.185 1.005 1208 1844
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 1.07 0.15 [ 0.81, 1.39] 0.684 [0.92, 1.08] 0.386 1.004 805 1268
Difference study group 3 1.22 0.15 [ 0.94, 1.57] 0.941 [0.92, 1.08] 0.146 1.003 910 1286
Hurdle Within-Person Effects
Hu Daily persuasion experienced 1.59*** 0.11 [ 1.40, 1.84] 1.000 [0.84, 1.20] 0.000 1.000 2626 2765
Hu Daily persuasion utilized (partner’s view) 1.34*** 0.08 [ 1.19, 1.53] 1.000 [0.84, 1.20] 0.035 1.000 3063 2747
Hu Daily pressure experienced 0.97 0.15 [ 0.71, 1.33] 0.572 [0.84, 1.20] 0.746 1.001 2848 2508
Hu Daily pressure utilized (partner’s view) 1.49* 0.28 [ 1.05, 2.32] 0.986 [0.84, 1.20] 0.112 1.001 2601 2208
Hu Daily pushing experienced 0.95 0.14 [ 0.71, 1.32] 0.639 [0.84, 1.20] 0.741 1.002 1902 2241
Hu Daily pushing utilized (partner’s view) 1.33** 0.15 [ 1.08, 1.70] 0.996 [0.84, 1.20] 0.168 1.001 2989 2863
Hu Actionplan 11.15*** 1.07 [ 9.26, 13.43] 1.000 [0.84, 1.20] 0.000 0.999 4075 2896
Hu Day 0.75 0.15 [ 0.50, 1.12] 0.926 [0.84, 1.20] 0.276 1.001 2329 2340
Hu Daily weartime NA NA NA NA NA NA NA NA NA
Hu Daily support received NA NA NA NA NA NA NA NA NA
Hu Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Hu Is a Weekend 1.53*** 0.15 [ 1.25, 1.85] 1.000 [0.84, 1.20] 0.006 1.002 4797 3214
Hu JITAI received 0.50*** 0.06 [ 0.39, 0.64] 1.000 [0.84, 1.20] 0.000 1.000 3961 2965
Hu Days post skilled support intervention 1.27 0.20 [ 0.93, 1.74] 0.933 [0.84, 1.20] 0.340 1.000 2110 2329
Hurdle Between-Person Effects
Hu Mean persuasion experienced 1.39 0.52 [ 0.66, 2.83] 0.811 [0.84, 1.20] 0.263 1.004 750 1560
Hu Mean persuasion utilized (partner’s view) 1.29 0.48 [ 0.61, 2.67] 0.753 [0.84, 1.20] 0.297 1.005 731 1438
Hu Mean pressure experienced 0.40* 0.17 [ 0.17, 0.88] 0.988 [0.84, 1.20] 0.031 1.001 1148 1773
Hu Mean pressure utilized (partner’s view) 0.53 0.22 [ 0.23, 1.22] 0.939 [0.84, 1.20] 0.113 1.003 1168 2054
Hu Mean pushing experienced 1.17 0.65 [ 0.42, 3.71] 0.615 [0.84, 1.20] 0.242 1.001 1060 1811
Hu Mean pushing utilized (partner’s view) 2.08 1.13 [ 0.72, 6.46] 0.915 [0.84, 1.20] 0.111 1.000 1084 1662
Hu Mean weartime NA NA NA NA NA NA NA NA NA
Hu Mean support received NA NA NA NA NA NA NA NA NA
Hu Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Hu Difference study group 2 0.78 0.23 [ 0.42, 1.45] 0.799 [0.84, 1.20] 0.328 1.002 800 1430
Hu Difference study group 3 1.04 0.31 [ 0.56, 1.87] 0.547 [0.84, 1.20] 0.449 1.003 774 1527
Random Effects
sd(Intercept) 0.30 0.04 [0.22, 0.40] NA NA NA 1.007 1010 1794
sd(Hurdle Intercept) 0.76 0.11 [0.58, 1.02] NA NA NA 1.002 1158 2010
sd(Daily persuasion experienced) 0.12 0.02 [0.08, 0.17] NA NA NA 1.001 2024 2551
sd(Daily persuasion utilized (partner’s view)) 0.08 0.02 [0.05, 0.13] NA NA NA 1.001 2099 2549
sd(Daily pressure experienced) 0.07 0.06 [0.00, 0.22] NA NA NA 1.001 1611 2097
sd(Daily pressure utilized (partner’s view)) 0.05 0.04 [0.00, 0.17] NA NA NA 1.001 1827 1906
sd(Daily pushing experienced) 0.08 0.04 [0.00, 0.17] NA NA NA 1.003 844 683
sd(Daily pushing utilized (partner’s view)) 0.06 0.04 [0.01, 0.14] NA NA NA 1.002 1212 1213
sd(Hu Daily persuasion experienced) 0.21 0.09 [0.04, 0.39] NA NA NA 1.001 1030 1189
sd(Hu Daily persuasion utilized (partner’s view)) 0.18 0.09 [0.01, 0.37] NA NA NA 1.003 735 687
sd(Hu Daily pressure experienced) 0.19 0.16 [0.01, 0.68] NA NA NA 1.001 1588 2021
sd(Hu Daily pressure utilized (partner’s view)) 0.25 0.22 [0.01, 0.93] NA NA NA 1.001 1268 1117
sd(Hu Daily pushing experienced) 0.57 0.16 [0.31, 0.97] NA NA NA 1.002 1743 2593
sd(Hu Daily pushing utilized (partner’s view)) 0.24 0.15 [0.01, 0.56] NA NA NA 1.003 1023 975
Additional Parameters
sigma 0.67 0.01 [0.65, 0.70] NA NA NA 1.001 4189 2470
# Plot continuous part of model

variable <- c(
  '(Intercept)',
  'b_persuasion_self_cw',
  'b_persuasion_partner_cw',
  'b_pressure_self_cw',
  'b_pressure_partner_cw',
  'b_pushing_self_cw',
  'b_pushing_partner_cw'
)


plot(
  bayestestR::p_direction(pa_sub, parameter = variable),
  priors = TRUE
) + theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(
    pa_sub, 
    parameter = variable, 
    range = rope_range_continuous,
    verbose = F,
    ci = 1
  )
) + theme_bw()

# Hurdle part of the model
variable <- c(
  'b_hu_persuasion_self_cw',
  'b_hu_persuasion_partner_cw',
  'b_hu_pressure_self_cw',
  'b_hu_pressure_partner_cw',
  'b_hu_pushing_self_cw',
  'b_hu_pushing_partner_cw'
)

plot(
  bayestestR::p_direction(pa_sub, parameter = variable),
  priors = TRUE
) + theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length

# The rope range for the bernoulli part of the model is -0.18, 0.18
plot(
  bayestestR::rope(pa_sub, parameter = variable, range = c(-0.18, 0.18), ci = 1),
  verbose = FALSE
) + theme_bw()
## Possible multicollinearity between b_persuasion_partner_cb and
##   b_persuasion_self_cb (r = 0.76), b_hu_persuasion_partner_cb and
##   b_hu_persuasion_self_cb (r = 0.77). This might lead to inappropriate
##   results. See 'Details' in '?rope'.

Device Based MVPA

Lognormal Model

formula <- bf(
  pa_obj ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan +
    day +  + weartime_self_cw + weartime_self_cb +
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
)



prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 50)", class = "Intercept") 
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
  , brms::set_prior("student_t(3, 0, 2.5)", class = "sigma", lb = 0)
)


#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = lognormal()
#  )

#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

pa_obj_log <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = lognormal(),
  #control = list(adapt_delta = 0.95),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777,
  file = file.path("models_cache_brms", paste0("pa_obj_log_gaussian_othercov_", suffix))
)
## Warning: Rows containing NAs were excluded from the model.
pa_obj_log_digest <- digest::digest(pa_obj_log)
# rope range for lognormal model
rope_factor <- sd(log(pa_obj_log$data$pa_obj))
rope_range_log = c(-0.1 * rope_factor, 0.1 * rope_factor)

summarize_brms(
  pa_obj_log, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  rope_range = rope_range_log,
  model_rows_fixed = model_rows_fixed,
  model_rows_random = model_rows_random,
  model_rownames_fixed = model_rownames_fixed,
  model_rownames_random = model_rownames_random,
  exponentiate = T) %>%
  print_df(rows_to_pack = rows_to_pack)
## Warning in summarize_brms(pa_obj_log, stats_to_report = c("CI", "SE", "pd", :
## Coefficients were exponentiated. Double check if this was intended.
exp(Est.) SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 111.76*** 10.06 [93.39, 134.16] 1.000 [0.94, 1.07] 0.000 1.000 1059 1910
Within-Person Effects
Daily persuasion experienced 1.03 0.02 [ 0.99, 1.06] 0.949 [0.94, 1.07] 0.995 1.002 4438 3302
Daily persuasion utilized (partner’s view) 1.02 0.02 [ 0.99, 1.05] 0.850 [0.94, 1.07] 0.998 1.000 5084 3703
Daily pressure experienced 0.95 0.03 [ 0.89, 1.01] 0.936 [0.94, 1.07] 0.657 1.000 6043 2994
Daily pressure utilized (partner’s view) 0.98 0.03 [ 0.92, 1.05] 0.749 [0.94, 1.07] 0.897 1.003 6459 2827
Daily pushing experienced 1.02 0.02 [ 0.96, 1.07] 0.747 [0.94, 1.07] 0.968 1.000 4920 3125
Daily pushing utilized (partner’s view) 1.01 0.02 [ 0.97, 1.05] 0.610 [0.94, 1.07] 0.994 1.002 5743 3295
Actionplan 1.10*** 0.03 [ 1.05, 1.15] 1.000 [0.94, 1.07] 0.137 1.003 10281 2967
Day 0.94 0.05 [ 0.85, 1.03] 0.906 [0.94, 1.07] 0.504 1.000 6202 3350
Daily weartime 1.00*** 0.00 [ 1.00, 1.00] 1.000 [0.94, 1.07] 1.000 1.002 4102 2926
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 1.07** 0.02 [ 1.02, 1.11] 0.998 [0.94, 1.07] 0.525 1.000 9218 2757
JITAI received 0.93* 0.03 [ 0.88, 0.99] 0.991 [0.94, 1.07] 0.419 1.001 8131 3151
Days post skilled support intervention 1.05 0.04 [ 0.98, 1.13] 0.904 [0.94, 1.07] 0.664 1.001 6094 3161
Between-Person Effects
Mean persuasion experienced 1.09 0.16 [ 0.81, 1.46] 0.740 [0.94, 1.07] 0.280 1.005 1021 1765
Mean persuasion utilized (partner’s view) 0.96 0.14 [ 0.71, 1.29] 0.598 [0.94, 1.07] 0.330 1.005 1011 1493
Mean pressure experienced 1.00 0.15 [ 0.75, 1.35] 0.504 [0.94, 1.07] 0.343 1.001 1447 2219
Mean pressure utilized (partner’s view) 0.99 0.14 [ 0.75, 1.31] 0.530 [0.94, 1.07] 0.355 1.002 1399 2043
Mean pushing experienced 0.96 0.20 [ 0.64, 1.45] 0.585 [0.94, 1.07] 0.237 1.003 1441 2175
Mean pushing utilized (partner’s view) 1.24 0.26 [ 0.81, 1.88] 0.852 [0.94, 1.07] 0.146 1.004 1364 1952
Mean weartime 1.00 0.00 [ 1.00, 1.00] 0.944 [0.94, 1.07] 1.000 1.001 5373 3360
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 0.92 0.11 [ 0.72, 1.19] 0.752 [0.94, 1.07] 0.321 1.001 1103 1857
Difference study group 3 1.02 0.13 [ 0.79, 1.31] 0.558 [0.94, 1.07] 0.385 1.003 1037 1615
Random Effects
sd(Intercept) 0.30 0.04 [0.24, 0.41] NA NA NA 1.002 1283 2027
sd(Daily persuasion experienced) 0.05 0.02 [0.02, 0.08] NA NA NA 1.000 2342 2532
sd(Daily persuasion utilized (partner’s view)) 0.05 0.02 [0.02, 0.09] NA NA NA 1.001 2215 1761
sd(Daily pressure experienced) 0.04 0.03 [0.00, 0.14] NA NA NA 1.001 2112 2270
sd(Daily pressure utilized (partner’s view)) 0.03 0.03 [0.00, 0.12] NA NA NA 1.000 2615 2537
sd(Daily pushing experienced) 0.07 0.04 [0.00, 0.15] NA NA NA 1.004 1060 1331
sd(Daily pushing utilized (partner’s view)) 0.03 0.02 [0.00, 0.09] NA NA NA 1.000 2291 2470
Additional Parameters
sigma 0.57 0.01 [0.56, 0.59] NA NA NA 1.004 7750 3141
plot(
  bayestestR::p_direction(pa_obj_log),
  priors = TRUE
) + 
  coord_cartesian(xlim = c(-3, 3)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(pa_obj_log, range = rope_range_log, ci = 1)
) + theme_bw()
## Possible multicollinearity between b_pressure_self_cb and
##   b_persuasion_self_cb (r = 0.74), b_pressure_partner_cb and
##   b_persuasion_self_cb (r = 0.75), b_pressure_self_cb and
##   b_persuasion_partner_cb (r = 0.72), b_pressure_partner_cb and
##   b_persuasion_partner_cb (r = 0.78), b_pushing_partner_cb and
##   b_pushing_self_cb (r = 0.83). This might lead to inappropriate results.
##   See 'Details' in '?rope'.

# Nothing significant, no plots

Affect

Gaussian

formula <- bf(
  aff ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan +
    day + 
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
)


prior1 <- c(
  brms::set_prior("normal(0, 5)", class = "b")
  ,brms::set_prior("normal(0, 20)", class = "Intercept", lb=1, ub=6)
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
  , brms::set_prior("student_t(3, 0, 2.5)", class = "sigma", lb = 0)
)

#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = gaussian()
#  )

#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

mood_gauss <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = gaussian(),
  #control = list(adapt_delta = 0.95, max_treedepth = 15),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777,
  file = file.path("models_cache_brms", paste0("mood_gauss_othercov_", suffix))
)
## Warning: Rows containing NAs were excluded from the model.
mood_gauss_digest <- digest::digest(mood_gauss)
summarize_brms(
  mood_gauss, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  model_rows_fixed = model_rows_fixed,
  model_rows_random = model_rows_random,
  model_rownames_fixed = model_rownames_fixed,
  model_rownames_random = model_rownames_random,
  exponentiate = F) %>%
  print_df(rows_to_pack = rows_to_pack)
Est. SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 3.54*** 0.16 [ 3.22, 3.89] 1.000 [-0.11, 0.11] 0.000 1.002 649 1134
Within-Person Effects
Daily persuasion experienced 0.00 0.02 [-0.04, 0.04] 0.515 [-0.11, 0.11] 1.000 1.000 3582 3247
Daily persuasion utilized (partner’s view) 0.02 0.02 [-0.03, 0.06] 0.757 [-0.11, 0.11] 1.000 1.001 3081 2761
Daily pressure experienced -0.03 0.05 [-0.15, 0.07] 0.716 [-0.11, 0.11] 0.923 1.001 3325 2451
Daily pressure utilized (partner’s view) -0.03 0.05 [-0.15, 0.08] 0.685 [-0.11, 0.11] 0.925 1.001 3056 2487
Daily pushing experienced 0.00 0.03 [-0.06, 0.07] 0.550 [-0.11, 0.11] 0.999 1.001 4499 3195
Daily pushing utilized (partner’s view) 0.07 0.03 [ 0.00, 0.13] 0.974 [-0.11, 0.11] 0.933 1.000 3351 2528
Actionplan 0.11** 0.04 [ 0.04, 0.18] 0.998 [-0.11, 0.11] 0.565 1.001 6058 3271
Day 0.24** 0.07 [ 0.09, 0.38] 0.999 [-0.11, 0.11] 0.048 1.001 3521 3058
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 0.15*** 0.03 [ 0.08, 0.22] 1.000 [-0.11, 0.11] 0.144 1.001 6379 3194
JITAI received -0.10* 0.05 [-0.19, -0.01] 0.986 [-0.11, 0.11] 0.615 1.000 6014 2901
Days post skilled support intervention 0.04 0.06 [-0.07, 0.16] 0.774 [-0.11, 0.11] 0.891 1.000 3509 2966
Between-Person Effects
Mean persuasion experienced 0.39 0.26 [-0.13, 0.97] 0.924 [-0.11, 0.11] 0.128 1.005 512 968
Mean persuasion utilized (partner’s view) 0.27 0.27 [-0.25, 0.86] 0.846 [-0.11, 0.11] 0.201 1.004 504 999
Mean pressure experienced -0.29 0.26 [-0.83, 0.23] 0.860 [-0.11, 0.11] 0.185 1.004 633 1196
Mean pressure utilized (partner’s view) -0.28 0.27 [-0.84, 0.23] 0.862 [-0.11, 0.11] 0.200 1.004 578 1177
Mean pushing experienced 0.10 0.37 [-0.67, 0.88] 0.611 [-0.11, 0.11] 0.231 1.002 871 1463
Mean pushing utilized (partner’s view) 0.25 0.38 [-0.50, 0.99] 0.750 [-0.11, 0.11] 0.192 1.002 828 1213
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 -0.19 0.22 [-0.65, 0.26] 0.804 [-0.11, 0.11] 0.270 1.002 634 946
Difference study group 3 0.37 0.23 [-0.09, 0.80] 0.945 [-0.11, 0.11] 0.116 1.006 594 1184
Random Effects
sd(Intercept) 0.56 0.07 [0.44, 0.73] NA NA NA 1.004 950 2039
sd(Daily persuasion experienced) 0.04 0.03 [0.00, 0.10] NA NA NA 1.005 1042 1107
sd(Daily persuasion utilized (partner’s view)) 0.07 0.03 [0.01, 0.13] NA NA NA 1.008 903 750
sd(Daily pressure experienced) 0.07 0.06 [0.00, 0.25] NA NA NA 1.000 1701 2040
sd(Daily pressure utilized (partner’s view)) 0.08 0.07 [0.00, 0.28] NA NA NA 1.001 1243 1914
sd(Daily pushing experienced) 0.04 0.04 [0.00, 0.13] NA NA NA 1.001 1386 1758
sd(Daily pushing utilized (partner’s view)) 0.06 0.04 [0.00, 0.15] NA NA NA 1.002 1210 1365
Additional Parameters
sigma 0.96 0.01 [0.94, 0.98] NA NA NA 1.001 6708 2947
plot(
  bayestestR::p_direction(mood_gauss),
  priors = TRUE
)  + 
  coord_cartesian(xlim = c(-3, 3)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(mood_gauss, ci = 1)
) + theme_bw()
## Possible multicollinearity between b_pressure_self_cb and
##   b_persuasion_self_cb (r = 0.82), b_pressure_partner_cb and
##   b_persuasion_self_cb (r = 0.8), b_pressure_self_cb and
##   b_persuasion_partner_cb (r = 0.8), b_pressure_partner_cb and
##   b_persuasion_partner_cb (r = 0.82), b_pressure_partner_cb and
##   b_pressure_self_cb (r = 0.77), b_pushing_partner_cb and
##   b_pushing_self_cb (r = 0.89). This might lead to inappropriate results.
##   See 'Details' in '?rope'.

conditional_spaghetti(
  mood_gauss, 
  effects = c('pushing_partner_cw'),
  group_var = 'coupleID',
  plot_full_range = TRUE
)

$pushing_partner_cw

Reactance

Ordinal

df_double$reactance_ordinal <- factor(df_double$reactance,
                                      levels = 0:5, 
                                      ordered = TRUE)

formula <- bf(
  reactance_ordinal ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan +
    day + 
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
)


prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
)


#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = cumulative() # HURDLE_CUMULATIVE
#  )


#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

reactance_ordinal <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = brms::cumulative(),
  #control = list(adapt_delta = 0.95),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777
  , file = file.path("models_cache_brms", paste0("reactance_ordinal_othercov_", suffix))
)
## Warning: Rows containing NAs were excluded from the model.
reactance_ordinal_digest <- digest::digest(reactance_ordinal)
summarize_brms(
  reactance_ordinal, 
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  rope_range = c(-0.18, 0.18),
  model_rows_fixed = model_rows_fixed_ordinal,
  model_rows_random = model_rows_random_ordinal,
  model_rownames_fixed = model_rownames_fixed_ordinal,
  model_rownames_random = model_rownames_random_ordinal,
  exponentiate = T) %>%
  print_df(rows_to_pack = rows_to_pack_ordinal)
OR SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercepts
Intercept NA NA NA NA NA NA NA NA NA
Intercept[1] 2.19* 0.83 [ 1.05, 4.77] 0.982 [0.84, 1.20] 0.046 1.000 3992 3288
Intercept[2] 4.81*** 1.87 [ 2.27, 10.47] 1.000 [0.84, 1.20] 0.000 1.000 4017 3266
Intercept[3] 13.39*** 5.39 [ 6.18, 30.47] 1.000 [0.84, 1.20] 0.000 1.001 4193 3159
Intercept[4] 59.49*** 25.99 [ 25.73, 145.96] 1.000 [0.84, 1.20] 0.000 1.002 4238 3155
Intercept[5] 2070.50*** 1417.97 [591.55, 8970.24] 1.000 [0.84, 1.20] 0.000 1.000 5394 3415
Within-Person Effects
Daily persuasion experienced 0.85* 0.07 [ 0.72, 1.00] 0.979 [0.84, 1.20] 0.596 1.000 3863 2947
Daily persuasion utilized (partner’s view) 1.02 0.09 [ 0.84, 1.23] 0.591 [0.84, 1.20] 0.934 1.000 3836 2903
Daily pressure experienced 1.82* 0.35 [ 1.16, 2.61] 0.994 [0.84, 1.20] 0.031 1.002 2598 2300
Daily pressure utilized (partner’s view) 1.26 0.29 [ 0.73, 2.11] 0.839 [0.84, 1.20] 0.349 1.000 2256 1591
Daily pushing experienced 1.25* 0.14 [ 1.00, 1.54] 0.978 [0.84, 1.20] 0.355 1.000 3276 2835
Daily pushing utilized (partner’s view) 0.94 0.11 [ 0.73, 1.20] 0.699 [0.84, 1.20] 0.805 1.001 3590 2669
Actionplan 0.76 0.19 [ 0.47, 1.26] 0.868 [0.84, 1.20] 0.306 1.001 4311 3301
Day 1.65 0.73 [ 0.71, 3.94] 0.863 [0.84, 1.20] 0.176 1.001 3538 3000
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 0.64* 0.14 [ 0.42, 0.96] 0.985 [0.84, 1.20] 0.108 1.001 6172 3091
JITAI received 1.29 0.35 [ 0.75, 2.16] 0.821 [0.84, 1.20] 0.335 1.001 5668 3049
Days post skilled support intervention 0.81 0.27 [ 0.42, 1.53] 0.741 [0.84, 1.20] 0.343 1.001 3401 2812
Between-Person Effects
Mean persuasion experienced 0.97 0.47 [ 0.38, 2.44] 0.524 [0.84, 1.20] 0.292 1.001 2145 2343
Mean persuasion utilized (partner’s view) 1.28 0.67 [ 0.47, 3.75] 0.680 [0.84, 1.20] 0.246 1.001 2049 2344
Mean pressure experienced 3.56* 1.83 [ 1.28, 10.10] 0.992 [0.84, 1.20] 0.016 1.001 2021 2721
Mean pressure utilized (partner’s view) 1.24 0.66 [ 0.41, 3.30] 0.655 [0.84, 1.20] 0.243 1.001 2467 2836
Mean pushing experienced 1.53 1.10 [ 0.39, 6.27] 0.734 [0.84, 1.20] 0.166 1.004 2212 2944
Mean pushing utilized (partner’s view) 0.10** 0.09 [ 0.02, 0.53] 0.996 [0.84, 1.20] 0.004 1.002 3608 3170
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 1.14 0.42 [ 0.53, 2.39] 0.647 [0.84, 1.20] 0.348 1.002 2914 2547
Difference study group 3 0.37* 0.15 [ 0.17, 0.92] 0.984 [0.84, 1.20] 0.032 1.003 2920 2536
Random Effects
sd(Intercept) 0.65 0.21 [0.24, 1.11] NA NA NA 1.005 1351 1388
sd(Daily persuasion experienced) 0.16 0.12 [0.01, 0.44] NA NA NA 1.003 904 1464
sd(Daily persuasion utilized (partner’s view)) 0.20 0.14 [0.01, 0.50] NA NA NA 1.002 1186 1718
sd(Daily pressure experienced) 0.57 0.25 [0.13, 1.19] NA NA NA 1.001 1310 1598
sd(Daily pressure utilized (partner’s view)) 0.39 0.36 [0.02, 1.57] NA NA NA 1.001 1245 2175
sd(Daily pushing experienced) 0.22 0.14 [0.01, 0.53] NA NA NA 1.002 1188 1508
sd(Daily pushing utilized (partner’s view)) 0.15 0.14 [0.01, 0.61] NA NA NA 1.001 1731 1864
Additional Parameters
sigma NA NA NA NA NA NA NA NA NA
disc 1.00 0.00 [1.00, 1.00] NA NA NA NA NA NA
plot(
  bayestestR::p_direction(reactance_ordinal),
  priors = TRUE
) + 
  coord_cartesian(xlim = c(-6, 6)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(reactance_ordinal, range = c(-0.18, 0.18), ci = 1)
) + theme_bw()
## Possible multicollinearity between b_Intercept[4] and b_Intercept[2] (r
##   = 0.86), b_Intercept[4] and b_Intercept[3] (r = 0.9), b_pressure_self_cb
##   and b_persuasion_self_cb (r = 0.71), b_pressure_partner_cb and
##   b_persuasion_partner_cb (r = 0.78). This might lead to inappropriate
##   results. See 'Details' in '?rope'.

conditional_spaghetti(
  reactance_ordinal, 
  effects = c('persuasion_self_cw', 'pressure_self_cw')
  , group_var = 'coupleID'
  #, n_groups = 15
  , plot_full_range = T
)

\(persuasion_self_cw <img src="04_SensitivityOtherCovariates_files/figure-html/report_reactance_ordinal-3.png" width="2400" />\)pressure_self_cw

Binary

introduce_binary_reactance <- function(data) {
  data$is_reactance <- factor(data$reactance > 0, levels = c(FALSE, TRUE), labels = c(0, 1))
  return(data)
}



df_double <- introduce_binary_reactance(df_double)
if (use_mi) {
  for (i in seq_along(implist)) {
    implist[[i]] <- introduce_binary_reactance(implist[[i]])
  }
}


formula <- bf(
  is_reactance ~ 
    persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw +
    
    #support_self_cw + support_partner_cw + 
    isWeekend + 
    got_JITAI_self + 
    skilled_support +
    
    persuasion_self_cb + persuasion_partner_cb +
    pressure_self_cb + pressure_partner_cb +
    pushing_self_cb + pushing_partner_cb +
    
    #support_self_cb + support_partner_cb + 
    studyGroup +
    
    plan +
    day + 
    
    # Random effects
    (persuasion_self_cw + persuasion_partner_cw +
    pressure_self_cw + pressure_partner_cw +
    pushing_self_cw + pushing_partner_cw | coupleID)
  #, autocor = autocor_str
  )



prior1 <- c(
  brms::set_prior("normal(0, 2.5)", class = "b")
  , brms::set_prior("normal(0, 10)", class = "Intercept", lb=0, ub=5) 
  , brms::set_prior("normal(0, 2)", class = "sd", group = "coupleID", lb = 0)
)


#brms::validate_prior(
#  prior1, 
#  formula = formula, 
#  data = df_double, 
#  family = bernoulli()
#  )



#df_minimal <- df_double[, c("AorB", all.vars(as.formula(formula)))]

is_reactance <- my_brm(
  mi = use_mi, 
  imputed_data = implist,
  
  formula = formula, 
  prior = prior1,
  data = df_double, 
  family = brms::bernoulli(),
  #control = list(adapt_delta = 0.95, max_treedepth = 15),
  iter = iterations,
  warmup = warmup,
  chains = 4,
  cores = 4,
  seed = 7777,
  file = file.path("models_cache_brms", paste0("is_reactance_othercov_", suffix))
  #, file_refit = 'always'
)
## Warning: Rows containing NAs were excluded from the model.
is_reactance_digest <- digest::digest(is_reactance)
summarize_brms(
  is_reactance,
  stats_to_report = c('CI', 'SE', 'pd', 'ROPE', 'Rhat', 'ESS'),
  model_rows_fixed = model_rows_fixed,
  model_rows_random = model_rows_random,
  model_rownames_fixed = model_rownames_fixed,
  model_rownames_random = model_rownames_random,
  exponentiate = T) %>%
  print_df(rows_to_pack = rows_to_pack)
OR SE 95% CI pd ROPE inside ROPE Rhat Bulk_ESS Tail_ESS
Intercept 0.51 0.23 [0.21, 1.28] 0.931 [0.83, 1.20] 0.109 1.004 2044 3060
Within-Person Effects
Daily persuasion experienced 0.85 0.08 [0.69, 1.03] 0.956 [0.83, 1.20] 0.553 1.003 2481 2297
Daily persuasion utilized (partner’s view) 1.13 0.16 [0.84, 1.55] 0.796 [0.83, 1.20] 0.642 1.001 1975 2418
Daily pressure experienced 1.92* 0.58 [1.01, 4.33] 0.977 [0.83, 1.20] 0.061 1.001 1958 1911
Daily pressure utilized (partner’s view) 1.43 0.59 [0.56, 4.18] 0.814 [0.83, 1.20] 0.228 1.002 1830 1790
Daily pushing experienced 1.36* 0.17 [1.05, 1.78] 0.991 [0.83, 1.20] 0.160 1.001 2598 2254
Daily pushing utilized (partner’s view) 0.91 0.17 [0.63, 1.32] 0.686 [0.83, 1.20] 0.620 1.000 3413 2780
Actionplan 0.76 0.21 [0.43, 1.32] 0.845 [0.83, 1.20] 0.312 1.000 3438 3049
Day 2.06 1.10 [0.72, 5.77] 0.921 [0.83, 1.20] 0.110 1.002 2954 2661
Daily weartime NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Is a Weekend 0.62 0.16 [0.38, 1.02] 0.968 [0.83, 1.20] 0.126 1.001 4243 3076
JITAI received 1.41 0.44 [0.79, 2.67] 0.866 [0.83, 1.20] 0.255 1.001 3550 3104
Days post skilled support intervention 0.71 0.27 [0.33, 1.50] 0.806 [0.83, 1.20] 0.258 1.002 2649 2902
Between-Person Effects
Mean persuasion experienced 1.70 1.05 [0.54, 5.91] 0.809 [0.83, 1.20] 0.161 1.002 1775 2326
Mean persuasion utilized (partner’s view) 1.74 1.17 [0.49, 6.88] 0.802 [0.83, 1.20] 0.158 1.003 1642 1923
Mean pressure experienced 18.80** 20.21 [2.71, 165.29] 0.999 [0.83, 1.20] 0.002 1.003 1511 2283
Mean pressure utilized (partner’s view) 2.73 3.09 [0.32, 21.97] 0.821 [0.83, 1.20] 0.086 1.001 1829 2485
Mean pushing experienced 1.02 0.98 [0.15, 7.39] 0.507 [0.83, 1.20] 0.148 1.002 1790 2479
Mean pushing utilized (partner’s view) 0.08* 0.08 [0.01, 0.59] 0.993 [0.83, 1.20] 0.006 1.001 1975 2752
Mean weartime NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA
Difference study group 2 1.20 0.60 [0.43, 3.10] 0.637 [0.83, 1.20] 0.258 1.004 2012 2615
Difference study group 3 0.39 0.20 [0.13, 1.12] 0.962 [0.83, 1.20] 0.052 1.003 1817 2631
Random Effects
sd(Intercept) 1.09 0.27 [0.63, 1.69] NA NA NA 1.001 1366 1901
sd(Daily persuasion experienced) 0.22 0.15 [0.01, 0.54] NA NA NA 1.005 607 1414
sd(Daily persuasion utilized (partner’s view)) 0.48 0.19 [0.13, 0.98] NA NA NA 1.003 991 924
sd(Daily pressure experienced) 1.07 0.60 [0.08, 2.52] NA NA NA 1.017 466 472
sd(Daily pressure utilized (partner’s view)) 0.80 0.66 [0.03, 2.75] NA NA NA 1.001 1094 1372
sd(Daily pushing experienced) 0.25 0.16 [0.02, 0.62] NA NA NA 1.001 996 950
sd(Daily pushing utilized (partner’s view)) 0.22 0.20 [0.01, 0.86] NA NA NA 1.000 1660 1818
Additional Parameters
sigma NA NA NA NA NA NA NA NA NA
plot(
  bayestestR::p_direction(is_reactance),
  priors = TRUE
) + 
  coord_cartesian(xlim = c(-6, 6)) +
  theme_bw()
## Warning in `==.default`(dens$Parameter, parameter): longer object length is not
## a multiple of shorter object length
## Warning in is.na(e1) | is.na(e2): longer object length is not a multiple of
## shorter object length

plot(
  bayestestR::rope(is_reactance, ci = 1)
) + theme_bw()

conditional_spaghetti(
  is_reactance, 
  effects = c('pressure_self_cw', 'pushing_self_cw'),
  group_var = 'coupleID',
  plot_full_range = TRUE
)

\(pressure_self_cw <img src="04_SensitivityOtherCovariates_files/figure-html/report_is_reactance-3.png" width="2400" />\)pushing_self_cw

Report All Models

process_model_component <- function(obj) {
  # Convert to string, modify, and evaluate
  name <- deparse(substitute(obj))
  if (report_hurdle) name <- paste0(name, '_hu')
  if (report_ordinal) name <- paste0(name, '_ordinal')
  return(get(name, envir = parent.frame()))
}



all_models <- report_side_by_side(
  pa_sub,
  pa_obj_log,
  mood_gauss,
  reactance_ordinal,
  is_reactance,
  
  stats_to_report = c('CI', 'pd'),
  
  model_rows_random = process_model_component(model_rows_random),
  model_rows_fixed = process_model_component(model_rows_fixed),
  model_rownames_random = process_model_component(model_rownames_random),
  model_rownames_fixed = process_model_component(model_rownames_fixed)
) 

[1] “pa_sub”

## Warning in summarize_brms(model, exponentiate = exponentiate, stats_to_report =
## stats_to_report, : Coefficients were exponentiated. Double check if this was
## intended.

[1] “pa_obj_log”

## Warning in summarize_brms(model, exponentiate = exponentiate, stats_to_report =
## stats_to_report, : Coefficients were exponentiated. Double check if this was
## intended.

[1] “mood_gauss” [1] “reactance_ordinal” [1] “is_reactance”

# pretty printing

summary_all_models <- all_models %>%
  print_df(rows_to_pack = process_model_component(rows_to_pack)) %>%
  add_header_above(
    c(" ", "Subjective MVPA Hurdle Lognormal" = (length(all_models) / 5),  
      "Device-Based MVPA Log (Gaussian)" = (length(all_models) / 5), 
      "Mood Gaussian" = (length(all_models) / 5),
      "Reactance Ordinal" = (length(all_models) / 5),
      "Reactance Dichotome" = (length(all_models) / 5))
  )


export_xlsx(
  summary_all_models, 
  rows_to_pack = process_model_component(rows_to_pack),
  file.path("Output", "AllModels_otherCovariates.xlsx"), 
  merge_option = 'header', 
  simplify_2nd_row = TRUE,
  line_above_rows = c(1,2),
  line_below_rows = c(-1)
)
## 
## Attaching package: 'rvest'
## The following object is masked from 'package:readr':
## 
##     guess_encoding
print(summary_all_models)
Subjective MVPA Hurdle Lognormal
Device-Based MVPA Log (Gaussian)
Mood Gaussian
Reactance Ordinal
Reactance Dichotome
exp(Est.) pa_sub 95% CI pa_sub pd pa_sub exp(Est.) pa_obj_log 95% CI pa_obj_log pd pa_obj_log Est. mood_gauss 95% CI mood_gauss pd mood_gauss OR reactance_ordinal 95% CI reactance_ordinal pd reactance_ordinal OR is_reactance 95% CI is_reactance pd is_reactance
Intercept 32.52*** [26.48, 40.42] 1.000 111.76*** [93.39, 134.16] 1.000 3.54*** [ 3.22, 3.89] 1.000 NA NA NA 0.51 [0.21, 1.28] 0.931
Hurdle Intercept 0.24*** [ 0.15, 0.39] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Conditional Within-Person Effects
Daily persuasion experienced 1.03 [ 0.97, 1.09] 0.853 1.03 [ 0.99, 1.06] 0.949 0.00 [-0.04, 0.04] 0.515 0.85* [ 0.72, 1.00] 0.979 0.85 [0.69, 1.03] 0.956
Daily persuasion utilized (partner’s view) 1.03 [ 0.98, 1.08] 0.883 1.02 [ 0.99, 1.05] 0.850 0.02 [-0.03, 0.06] 0.757 1.02 [ 0.84, 1.23] 0.591 1.13 [0.84, 1.55] 0.796
Daily pressure experienced 0.91 [ 0.82, 1.00] 0.974 0.95 [ 0.89, 1.01] 0.936 -0.03 [-0.15, 0.07] 0.716 1.82* [ 1.16, 2.61] 0.994 1.92* [1.01, 4.33] 0.977
Daily pressure utilized (partner’s view) 0.94 [ 0.86, 1.03] 0.919 0.98 [ 0.92, 1.05] 0.749 -0.03 [-0.15, 0.08] 0.685 1.26 [ 0.73, 2.11] 0.839 1.43 [0.56, 4.18] 0.814
Daily pushing experienced 0.99 [ 0.92, 1.05] 0.657 1.02 [ 0.96, 1.07] 0.747 0.00 [-0.06, 0.07] 0.550 1.25* [ 1.00, 1.54] 0.978 1.36* [1.05, 1.78] 0.991
Daily pushing utilized (partner’s view) 0.97 [ 0.92, 1.03] 0.858 1.01 [ 0.97, 1.05] 0.610 0.07 [ 0.00, 0.13] 0.974 0.94 [ 0.73, 1.20] 0.699 0.91 [0.63, 1.32] 0.686
Actionplan 1.40*** [ 1.28, 1.53] 1.000 1.10*** [ 1.05, 1.15] 1.000 0.11** [ 0.04, 0.18] 0.998 0.76 [ 0.47, 1.26] 0.868 0.76 [0.43, 1.32] 0.845
Day 0.95 [ 0.80, 1.12] 0.743 0.94 [ 0.85, 1.03] 0.906 0.24** [ 0.09, 0.38] 0.999 1.65 [ 0.71, 3.94] 0.863 2.06 [0.72, 5.77] 0.921
Daily weartime NA NA NA 1.00*** [ 1.00, 1.00] 1.000 NA NA NA NA NA NA NA NA NA
Daily support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Is a Weekend 1.19*** [ 1.11, 1.29] 1.000 1.07** [ 1.02, 1.11] 0.998 0.15*** [ 0.08, 0.22] 1.000 0.64* [ 0.42, 0.96] 0.985 0.62 [0.38, 1.02] 0.968
JITAI received 0.94 [ 0.85, 1.04] 0.884 0.93* [ 0.88, 0.99] 0.991 -0.10* [-0.19, -0.01] 0.986 1.29 [ 0.75, 2.16] 0.821 1.41 [0.79, 2.67] 0.866
Days post skilled support intervention 1.07 [ 0.94, 1.20] 0.848 1.05 [ 0.98, 1.13] 0.904 0.04 [-0.07, 0.16] 0.774 0.81 [ 0.42, 1.53] 0.741 0.71 [0.33, 1.50] 0.806
Conditional Between-Person Effects
Mean persuasion experienced 1.07 [ 0.79, 1.44] 0.656 1.09 [ 0.81, 1.46] 0.740 0.39 [-0.13, 0.97] 0.924 0.97 [ 0.38, 2.44] 0.524 1.70 [0.54, 5.91] 0.809
Mean persuasion utilized (partner’s view) 1.01 [ 0.75, 1.36] 0.530 0.96 [ 0.71, 1.29] 0.598 0.27 [-0.25, 0.86] 0.846 1.28 [ 0.47, 3.75] 0.680 1.74 [0.49, 6.88] 0.802
Mean pressure experienced 1.16 [ 0.82, 1.62] 0.800 1.00 [ 0.75, 1.35] 0.504 -0.29 [-0.83, 0.23] 0.860 3.56* [ 1.28, 10.10] 0.992 18.80** [2.71, 165.29] 0.999
Mean pressure utilized (partner’s view) 0.93 [ 0.66, 1.33] 0.650 0.99 [ 0.75, 1.31] 0.530 -0.28 [-0.84, 0.23] 0.862 1.24 [ 0.41, 3.30] 0.655 2.73 [0.32, 21.97] 0.821
Mean pushing experienced 1.15 [ 0.73, 1.78] 0.733 0.96 [ 0.64, 1.45] 0.585 0.10 [-0.67, 0.88] 0.611 1.53 [ 0.39, 6.27] 0.734 1.02 [0.15, 7.39] 0.507
Mean pushing utilized (partner’s view) 1.22 [ 0.77, 1.92] 0.799 1.24 [ 0.81, 1.88] 0.852 0.25 [-0.50, 0.99] 0.750 0.10** [ 0.02, 0.53] 0.996 0.08* [0.01, 0.59] 0.993
Mean weartime NA NA NA 1.00 [ 1.00, 1.00] 0.944 NA NA NA NA NA NA NA NA NA
Mean support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Difference study group 2 1.07 [ 0.81, 1.39] 0.684 0.92 [ 0.72, 1.19] 0.752 -0.19 [-0.65, 0.26] 0.804 1.14 [ 0.53, 2.39] 0.647 1.20 [0.43, 3.10] 0.637
Difference study group 3 1.22 [ 0.94, 1.57] 0.941 1.02 [ 0.79, 1.31] 0.558 0.37 [-0.09, 0.80] 0.945 0.37* [ 0.17, 0.92] 0.984 0.39 [0.13, 1.12] 0.962
Hurdle Within-Person Effects
Hu Daily persuasion experienced 1.59*** [ 1.40, 1.84] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily persuasion utilized (partner’s view) 1.34*** [ 1.19, 1.53] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pressure experienced 0.97 [ 0.71, 1.33] 0.572 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pressure utilized (partner’s view) 1.49* [ 1.05, 2.32] 0.986 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pushing experienced 0.95 [ 0.71, 1.32] 0.639 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily pushing utilized (partner’s view) 1.33** [ 1.08, 1.70] 0.996 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Actionplan 11.15*** [ 9.26, 13.43] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Day 0.75 [ 0.50, 1.12] 0.926 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily weartime NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Daily support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Is a Weekend 1.53*** [ 1.25, 1.85] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu JITAI received 0.50*** [ 0.39, 0.64] 1.000 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Days post skilled support intervention 1.27 [ 0.93, 1.74] 0.933 NA NA NA NA NA NA NA NA NA NA NA NA
Hurdle Between-Person Effects
Hu Mean persuasion experienced 1.39 [ 0.66, 2.83] 0.811 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean persuasion utilized (partner’s view) 1.29 [ 0.61, 2.67] 0.753 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pressure experienced 0.40* [ 0.17, 0.88] 0.988 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pressure utilized (partner’s view) 0.53 [ 0.23, 1.22] 0.939 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pushing experienced 1.17 [ 0.42, 3.71] 0.615 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean pushing utilized (partner’s view) 2.08 [ 0.72, 6.46] 0.915 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean weartime NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean support received NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Mean support provided (partner’s view) NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Hu Difference study group 2 0.78 [ 0.42, 1.45] 0.799 NA NA NA NA NA NA NA NA NA NA NA NA
Hu Difference study group 3 1.04 [ 0.56, 1.87] 0.547 NA NA NA NA NA NA NA NA NA NA NA NA
Random Effects
sd(Intercept) 0.30 [0.22, 0.40] NA 0.30 [0.24, 0.41] NA 0.56 [0.44, 0.73] NA 0.65 [0.24, 1.11] NA 1.09 [0.63, 1.69] NA
sd(Hurdle Intercept) 0.76 [0.58, 1.02] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Daily persuasion experienced) 0.12 [0.08, 0.17] NA 0.05 [0.02, 0.08] NA 0.04 [0.00, 0.10] NA 0.16 [0.01, 0.44] NA 0.22 [0.01, 0.54] NA
sd(Daily persuasion utilized (partner’s view)) 0.08 [0.05, 0.13] NA 0.05 [0.02, 0.09] NA 0.07 [0.01, 0.13] NA 0.20 [0.01, 0.50] NA 0.48 [0.13, 0.98] NA
sd(Daily pressure experienced) 0.07 [0.00, 0.22] NA 0.04 [0.00, 0.14] NA 0.07 [0.00, 0.25] NA 0.57 [0.13, 1.19] NA 1.07 [0.08, 2.52] NA
sd(Daily pressure utilized (partner’s view)) 0.05 [0.00, 0.17] NA 0.03 [0.00, 0.12] NA 0.08 [0.00, 0.28] NA 0.39 [0.02, 1.57] NA 0.80 [0.03, 2.75] NA
sd(Daily pushing experienced) 0.08 [0.00, 0.17] NA 0.07 [0.00, 0.15] NA 0.04 [0.00, 0.13] NA 0.22 [0.01, 0.53] NA 0.25 [0.02, 0.62] NA
sd(Daily pushing utilized (partner’s view)) 0.06 [0.01, 0.14] NA 0.03 [0.00, 0.09] NA 0.06 [0.00, 0.15] NA 0.15 [0.01, 0.61] NA 0.22 [0.01, 0.86] NA
sd(Hu Daily persuasion experienced) 0.21 [0.04, 0.39] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily persuasion utilized (partner’s view)) 0.18 [0.01, 0.37] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pressure experienced) 0.19 [0.01, 0.68] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pressure utilized (partner’s view)) 0.25 [0.01, 0.93] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pushing experienced) 0.57 [0.31, 0.97] NA NA NA NA NA NA NA NA NA NA NA NA NA
sd(Hu Daily pushing utilized (partner’s view)) 0.24 [0.01, 0.56] NA NA NA NA NA NA NA NA NA NA NA NA NA
Additional Parameters
sigma 0.67 [0.65, 0.70] NA 0.57 [0.56, 0.59] NA 0.96 [0.94, 0.98] NA NA NA NA NA NA NA
report::report_system()

Analyses were conducted using the R Statistical language (version 4.4.1; R Core Team, 2024) on Windows 11 x64 (build 22635)

report::report_packages()
  • beepr (version 2.0; Bååth R, 2024)
  • R.methodsS3 (version 1.8.2; Bengtsson H, 2003)
  • R.oo (version 1.27.0; Bengtsson H, 2003)
  • R.utils (version 2.12.3; Bengtsson H, 2023)
  • brms (version 2.22.0; Bürkner P, 2017)
  • digest (version 0.6.37; Eddelbuettel D, 2024)
  • Rcpp (version 1.0.13.1; Eddelbuettel D et al., 2024)
  • bayesplot (version 1.11.1; Gabry J, Mahr T, 2024)
  • lubridate (version 1.9.3; Grolemund G, Wickham H, 2011)
  • DHARMa (version 0.4.7; Hartig F, 2024)
  • wbCorr (version 0.1.22; Küng P, 2023)
  • see (version 0.9.0; Lüdecke D et al., 2021)
  • tibble (version 3.2.1; Müller K, Wickham H, 2023)
  • R (version 4.4.1; R Core Team, 2024)
  • openxlsx (version 4.2.7.1; Schauberger P, Walker A, 2024)
  • ggplot2 (version 3.5.1; Wickham H, 2016)
  • forcats (version 1.0.0; Wickham H, 2023)
  • stringr (version 1.5.1; Wickham H, 2023)
  • rvest (version 1.0.4; Wickham H, 2024)
  • tidyverse (version 2.0.0; Wickham H et al., 2019)
  • readxl (version 1.4.3; Wickham H, Bryan J, 2023)
  • dplyr (version 1.1.4; Wickham H et al., 2023)
  • purrr (version 1.0.2; Wickham H, Henry L, 2023)
  • readr (version 2.1.5; Wickham H et al., 2024)
  • xml2 (version 1.3.6; Wickham H et al., 2023)
  • tidyr (version 1.3.1; Wickham H et al., 2024)
  • knitr (version 1.49; Xie Y, 2024)
  • kableExtra (version 1.4.0; Zhu H, 2024)
report::cite_packages()